home *** CD-ROM | disk | FTP | other *** search
- /* index2.c: Filter out duplicate integers */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- #define NELEMS 7
-
- static int comp(const void *, const void *);
-
- static int some_ints[NELEMS] = {40,12,37,12,40,15,15};
-
- main()
- {
- int last;
- size_t i;
- size_t idx[NELEMS] = {0,1,2,3,4,5,6};
-
- qsort(idx,NELEMS,sizeof idx[0],comp);
-
- /* Output only unique items */
- printf("%d\n",(last = some_ints[idx[0]]));
- for (i = 1; i < NELEMS; ++i)
- if (some_ints[idx[i]] != last)
- printf("%d\n",(last = some_ints[idx[i]]));
- return 0;
- }
-
- static int comp(const void *p1, const void *p2)
- {
- size_t i = * (size_t *) p1;
- size_t j = * (size_t *) p2;
-
- return some_ints[i] - some_ints[j];
- }
-
- /* Output:
- 12
- 15
- 37
- 40
- */
-